package com.aco.party.common.entity;

import java.util.Collection;
import java.util.Collections;

/**
 * <pre>
 * @(#)PageEntity.java 2013-07-01
 *
 * @功能说明：
 * 分页结果返回统一封装,定义属性如下：
 * 1:查询记录开始序号
 * 2:总记录数
 * 3:每页多少记录数
 * 4:结果数据列表
 * 
 * @版本更新列表
 *</pre>
 */
public class PageEntity<T> {
	
	/**
	 * 查询记录开始序号
	 */
	private int start;
    /**
     * 总记录数
     */
	private int totalCount;
	/**
	 * 每页多少记录数
	 */
	private int limit;
	/**
	 * 结果数据列表
	 */
	private Collection<T> datas = Collections.emptyList();

	public PageEntity() {
	}

	public PageEntity(int totalCount, Collection<T> list) {
		this.totalCount = totalCount;
		this.datas = list;
	}

	public static int getStartOfPage(int pageNo, int pageSize) {
		return (pageNo - 1) * pageSize;
	}

	public static int getEndOfPage(int pageNo, int pageSize) {
		return pageNo * pageSize;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}

	public int getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
	}

	public Collection<T> getDatas() {
		return datas;
	}

	public void setDatas(Collection<T> datas) {
		this.datas = datas;
	}

}
